Field of the Invention
The present invention relates to an image forming apparatus and resource management method for dynamically managing the use amount of a resource used by applications in an execution environment for installing and executing a plurality of embedded applications.
Description of the Related Art
Conventionally in an embedded application execution environment, the total amount of a resource, which is a general computer resource used by an application, is generally limited. The following is therefore performed in general. More specifically, an upper limit value is set for the amount of the resource used by the application. In addition, it is confirmed in an inspection stage that the amount of use by the application does not exceed the upper limit value, thereby guaranteeing that the application operates stably.
In an embedded application execution environment where a plurality of such applications are assumed to operate, an application management framework monitors the use amount of a resource used by the applications installed in the execution environment. More specifically, when installing applications in the execution environment, all the installed applications are controlled not to exceed the total amount of a resource provided by the execution environment. At this time, as for an application exceeding the limitation, installation of it is inhibited. Such a resource management apparatus and resource management method are generally provided.
There is also provided a technique of suppressing the use amount of a resource between a plurality of applications by detecting a state in which a plurality of applications conflict with each other over the use of the resource, and controlling the applications. For example, according to a technique disclosed in Japanese Patent Laid-Open No. 2004-362425, a resource management apparatus includes a database that gives in advance, to a plurality of applications, priorities for using a resource. In this case, the use of the resource is controlled by providing a mechanism that generates an error when one application is to use the resource, but another application of a higher priority is using it.
In Japanese Patent Laid-Open No. 8-328884, a resource management apparatus gives in advance, to a plurality of applications, priorities for using a resource. In addition, this resource management apparatus includes a management table representing the necessity of exclusive control. When an application of a low priority is to use a resource requiring exclusive control, the application is stopped till the completion of using the resource by an application of a high priority, thereby controlling a conflict.
In a technique disclosed in Japanese Patent Laid-Open No. 2010-39689, when an application conflicts with another specific application over the use of a resource, the following mechanisms are provided in the other application. More specifically, a screen is provided so that the administrator can know the amount of the resource currently used by the other application. Further, an interface is provided so that the application can know the consumption amount of the resource by the other application. With these mechanisms, the application confirms the use amount of the resource by the other application, and then starts the use of the resource by itself, thereby avoiding a conflict.
However, these techniques have the following problems. More specifically, when the sum of upper limit values given to respective applications exceeds the use amount of a resource that can be provided by the overall system, these applications cannot be simultaneously installed. In practice, however, the use amounts of the resource by these applications hardly simultaneously reach their upper limits during the operation. This poses a problem that the use amount of a necessary resource can be provided in practice, but these applications cannot be simultaneously arranged in the system.
The techniques disclosed in Japanese Patent Laid-Open Nos. 2004-362425 and 8-328884, priorities are given so that an application of a low priority cannot use a resource upon generation of a conflict over the resource. By preventing the use amount from reaching the upper limit, these applications can be simultaneously arranged. However, until the resource becomes usable, processing by the application of a low priority is stopped after all. There is a problem that it becomes difficult to simultaneously use a plurality of applications that share a resource and have different priorities on the resource.
The technique disclosed in Japanese Patent Laid-Open No. 2010-39689 also has a problem. Before an application uses a resource, it confirms the use amount of the resource by another application and then controls the operation of the application. This technique therefore has an advantage in which a measure to, for example, perform another processing first is adopted and the progress of processing is not interrupted. However, to do this, the application needs to be equipped with such an interface in advance, and this technique cannot be applied to an application not equipped with the interface. When an application runs short of a resource, an application to which inquiries are made needs to be defined in advance, so the above-mentioned solution cannot be applied to an unexpected combination.
As described above, even if resource management of managing a resource consumption amount by an application not to exceed a resource amount that can be provided by an execution environment is statically performed at the time of installing an application, or even if the resource management is dynamically executed at the time of executing an installed application, it is difficult to perform appropriate resource management.